package com.project.mapper;

import com.project.bean.CarBean;
import com.project.bean.ManBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 公民mapper接口
 */
public interface IManMapper {
    /**
     * 查询所有公民，以及每个公民拥有汽车数量
     *
     * @return 公民集合
     */
    public List<ManBean> findAll();

    /**
     * 添加公民，同时添加该公民拥有的汽车集合
     *
     * @param man 公民对象
     */
    public void addMan(ManBean man);

    /**
     * 循环添加汽车集合
     * @param manId 公民ID
     * @param carList 汽车集合
     */
    public void addCarList(@Param("manId") int manId,
                           @Param("carList") List<CarBean> carList);

    /**
     * 联级删除公民，先删除公民拥有的机车集合，再删除公民对象
     * @param manId 公民ID
     */
    public void delCaseCade(int manId);

    /**
     * 外键置空删除公民，先将公民拥有的汽车外键设置为null，在删除公民对象
     * @param manId 公民ID
     */
    public void delSetNull(int manId);

    /**
     * 按id查询公民，同时查询该公民拥有的汽车集合
     * @param manId 公民ID
     * @return 公民对象
     */
    public ManBean findById(int manId);
}